计算生物学家回答生物及生物医药问题时,会在实验阶段利用计算技术以获得更加准确的结果并降低开销。在过去的20多年间,出现了很多史无前例的技术进展,并产生了大量的生物数据(biological data),如下一代基因测序技术、质谱法、基因芯片、冷冻电镜以及其他导致数据爆炸的高通量方法。然而,这一数据爆炸也带来了两个方面的问题:一方面,数据的规模和范围可以帮助我们更好地了解基因、传染病、癌症、基础生物学甚至人类的基因迁移;另一方面,研究者产生了如此巨大的数据集,在这些数据集面前,人们难以找到有效的分析方法来发现其中蕴含的有关生物过程的有用线索。
如今,计算机的处理速度越来越快,而价格却越来越便宜;每一美元计算机硬件对应的计算能力差不多每1~2年提高一倍;同样,存储容量的成本也在快速下降(见图1)。
在2002年第一次对人类基因测序时,计算机计算能力的增长基本与基因数据的增长速度相匹配。2004年,人类基因组计划开始采用桑格测序(Sanger sequencing)这一“下一代测序技术”。然而,基因测序的材料成本在过去十年中直线下降。目前,一个完整的人类基因测序成本已经降低到1000美元以下。这些变化提供给研究者的基因数据规模正以每十年增加一个数量级的速度增长。
这种数据规模的增长为研究者带来巨大的挑战[25]。目前,许多生物学“组学(omics)”应用需要存储、访问和分析大规模的基因库数据。采用云计算技术是应对这些挑战的一种可行方式。谷歌公司及布洛德研究所(Broad Institute)已经合作将基因分析工具(Genome Analysis Toolkit, GATK)放在谷歌云上 (https://cloud.google.com/genomics/gatk)。许多计算生物学研究机构及企业(如DNAnexus)也常采用亚马逊的Web服务(Amazon Web Services, AWS)。尽管云计算可以帮助研究者从繁琐的数据中心机器维护工作中解脱出来,并通过及时归还不再使用的计算资源来帮助研究者降低研究成本,但这仍不是万全之策。首先,云计算数据中心的计算资源仍依赖于硅半导体技术的进步和摩尔定律的发展,它并不能解决以指数增长的组学数据所带来的超越摩尔定律发展速度的计算问题。而且,当面对2014年在西非肆虐的埃博拉病毒这样的突发疫情时,我们更需要在偏远地区使用这些分析资源。尽管目前已经有可能将基因测序的设备及有限的计算能力部署在这些偏远地区,但由于这些地方的互联网接入条件非常有限,研究者可能根本无法连接到远程的云计算资源。
计算机科学家往往可以通过研究不同数据的结构特点,来减少计算的时间或空间复杂度。计算生物学的研究者也可以从此类研究中获得巨大的收益。目前,采用一些经典的降维方法(如主成分分析)可以简化分析并发现一些显著的特征[3];设计更为精巧的索引(如Burrows-Wheeler变换,BWT)可以利用基因序列的结构特征来加速计算并减少数据所占用的存储空间[3]。本文将重点介绍一些前沿的算法,研究如何利用基因数据的独特结构,应对不断增长的生物基因数据带来的挑战。
生物数据的种类
在分子生物学的中心法则(central dogma)中,DNA被转录为RNA,RNA再被核糖体翻译为多肽链,即氨基酸序列,这些氨基酸序列单独或复合而构成蛋白质。蛋白质折叠成各种低能量的复杂结构,并扮演细胞机 (cellular machine)的功能;DNA序列决定了氨基酸的序列,进而确定了蛋白质的折叠结构。这个结构最终决定了蛋白质在细胞中的功能。某些种类的RNA也扮演细胞机的功能。从这个过程中收集各种级别生物数据的方法都已经被开发出来,导致在DNA、RNA和蛋白质的序列、丰度、结构、功能以及相互作用等方面的数据大量涌现。这些数据中的大部分可以使用标准的大数据方法进行分析,本文主要关注那些在开发可扩展算法方面表现出额外的可利用结构的生物数据的例子。
序列数据(sequence data),无论是核苷酸序列(使用4个字母分别代表DNA或RNA的4种碱基)还是蛋白质序列(使用20个字母分别代表20种标准氨基酸)都存在多种获取方法。蛋白质和RNA序列可使用质谱法进行测定,此方法能够探测到蛋白质序列及其与RNA序列之间的交互,进而获得RNA序列及其丰度信息。而RNA在蛋白质的翻译过程中起到核心作用,所以科学家们可以从这些RNA信息推断出基因的表达。然而,随着下一代测序(Next-Generation Sequencing, NGS)技术的出现,得到最多的是DNA序列数据。为了更好地理解NGS数据的结构,我们将详细介绍NGS技术。
在基因组时代的伊始,桑格测序法是使用最为广泛的读取基因组的方法。然而近年来,以Illumina公司开创的“合成测序(sequencing by synthesis)”为开端的NGS技术的出现,因其支持大规模并行测序、成本低、制备样本简单,极大地提高了获取测序数据的吞吐率。Illumina测序技术,以及其他NGS技术,如SOLiD,Ion Torrent和454焦磷酸测序(pyrosequencing) ,不是像阅读线装书一样对DNA序列进行从头到尾测序。而在鸟枪法测序(shotgun sequencing)中,DNA分子被切成很多小片段(fragments);从这些片段的一端或两端,可产生读长(reads)(如图2a)。这些读长必须以正确的顺序放在一起,而构成整个基因组。目前读长的典型长度是50到200个碱基(bases)。因为没有哪一种测序技术是完全可靠的,所以测序仪为每个位置还提供了一个质量值(quality score,对测得的DNA碱基的置信度)。这样,一个NGS的读长包含一串DNA序列和一串ASCII码组成的碱基质量值。一次测序将产生很多彼此重叠的读长。
当使用聚类分析和概率方法测量丰度信息,进而产生基因表达数据时,数据的高维度以及数据中的噪音给分析带来了巨大的挑战。主成份分析在降低基因表达数据维度方面表现出了较好的前景。这种数据及相关挑战是其他文章[3]的关注点,本文仅简单介绍到这里。
如前所述,形式决定功能,所以在序列数据和表达数据之外,结构在生物数据科学中也发挥着重要作用。然而,我们不仅对RNA和蛋白质的结构感兴趣,小化合物也是相关结构数据的来源,因为这些小化合物经常与它们相关的大RNA或蛋白质进行交互。分子的物理结构可以通过X射线结晶、核磁共振、电子显微镜或其他技术探测。一旦探明,可以使用多种多样的方法来表示这些结构,从分子键的标记图到蛋白质结构域概要(summaries of protein domains)。然后,这些表示结构将存储在Pub-Chem或Protein Data Bank之类的数据库中,并被研究人员搜索,如寻找蛋白质靶标的潜在小分子激动剂(agonists)。我们将在后文展开介绍,稀疏并且非随机分布在许多有代表性的空间的生物分子会引起人们的研究兴趣,而这一特征可用于加速前面提到的搜索。
当分析更复杂的现象,而非单个蛋白质或化合物时,我们通常依赖于将信息合成在一起,从系统层面来理解生物学。为此,我们通常使用网络来表示生物数据,如蛋白质在基因和物理上的交互,代谢通路中的交互也是如此[3]。虽然在这些分析中已经使用了标准的网络科学分析工具,如一些方法利用扩散(diffusion)或随机游走(random walks)来探索网络的拓扑结构[9,11],但分析中还经常需要配合一些特别的生物数据,如在IsoBank[32]和IsoBankN[21]在全局多网络比对中,在随机游走的基础上还使用保守特征功能数据。还有一些工具用于解决其他问题,如MONGOOSE[10]用于分析代谢通路。然而,讨论到这里,生物网络科学已经超出了本文的范围。
生物数据的挑战
给出NGS产生的DNA或RNA读长,首要任务是将这些片段组装成彼此相连的序列。组装问题类似于将一本所有页面都散开的书进行重组。虽然从头(De novo)组装已超出了本文的范围,但从头组装是可能的,因为读长之间存在很多重叠部分[3];通常使用de Bruijn图来完成这一任务[6]。对于已测序的生物,通常可以获得一个参考基因组(对于RNA是转录组);人类基因组计划的确切目标就是建立人类的参考基因组。
当有了参考序列,NGS产生的读长可用于参考序列的比对(如图2c)。继续使用书做类比,当有另一份同样的书(可能不完整)作为比较时,重组一本所有页面都散开的书会简单很多。序列比对允许新测得的读长与参考序列之间存在不同;这些不同,或称之为变异——包括单核苷酸多态性(SNPs,即基因的相似性位翻转,如图2b),插入或删除,或基因组中的大规模变异。探测个体基因组与参考序列之间不同的过程被称为变异检测(variant calling)。虽然从头组装相比,基于参考序列的序列比对是一个基础的简单问题,但是在计算上却比较复杂,因为数GB或数TB的读长必须被比对到参考基因组上,而参考基因组碱基对的规模从数百万(如细菌)到数十亿(如哺乳动物)不等。如全基因组ICGC-TCGA泛癌分析(ICGC-TCGA Pan Cancer Analysis of Whole Genomes, PCAWG)[36]将来自80个研究所的500位顶级癌症研究者以协作方式召集在一起,目标是比对37种常见癌症类型的全部变异数据。目前,使用研究所直连网络下载每个样本都需要7小时。更重要的是,研究者不信任这些比对结果,因而会重新进行比对。花在序列比对上的时间占整个序列分析流水线的50%。由于序列比对是NGS分析流水线中典型的最耗时的步骤,对现有比对工具的任何改进将立即加速基于大数据集的序列分析研究。
在NGS技术成本急剧下降的推动下,千人基因组计划[1]想得到人类基因变异的更广泛的目录;许多完整的基因组被编目,而不是一个物种只产生一个参考基因组。同样地,WormBase和FlyBase两个数据库分别在对秀丽隐杆线虫的不同物种和果蝇的不同品系进行编目。这些基因组支持跨物种推断,例如关于基因和调控区域,并进一步理解功能和进化[3]。再一次说明,测序数据给数据的存储、访问和分析带来了巨大的挑战。
给定一个已测序的基因组,接下来的问题是其中包含了哪些基因(编码蛋白质的基因组区域),每一种相应的蛋白质是什么结构,发挥了什么生物功能。识别相似基因是一个已经被充分研究的问题[3],但已超出了本文的范围。然而,判定进化关系、结构和功能是当前计算生物学研究的中心。因为一些生物体(被称为模型生物,model organism)比其他生物研究得更充分,而进化就是保留序列、结构和功能。探测这些属性的一种强有力方法是从更多的已知序列中搜索相似序列。这就是所谓的“同源搜索(homology search)”,即在数据库中对已知基因和蛋白质序列进行近似匹配。同源问题先前被认为已经解决;BLAST(Basic Local Alignment Search Tool)[3]是在核苷酸和蛋白质序列数据库中进行同源搜索的标准工具。BLAST采用的是“种子-延伸(seed-and-extend)”方法,它寻找那些可能产生更长匹配的长度为k的短片段(k-mer)的匹配,并使用贪婪算法进一步延伸这些匹配片段,直到在查询序列与潜在的数据库命中(hits)之间产生一个序列比对结果。然而,BLAST的查询时间随着搜索数据库的规模呈线性增长,这也是一个问题,因为序列数据库的规模正在以高于摩尔定律的速度不断增长。
一个潜在的,甚至更大规模的是宏基因组学(metagenomic)数据的增长。宏基因组学是对构成一个特定环境的许多基因组(细菌、真菌甚至病毒)的研究。这样的环境可以是来自特定区域的土壤(可以引导发现新的抗生素[14]),或者是人类的肠道,其中的微生物已经和人类的健康问题联系起来,包括自闭症谱系障碍 [23]、克罗恩病和肥胖。
宏基因组学的基本问题是其中包含了哪些生物,该微生物总体上完成了什么代谢功能。解决这一问题的一种方法是将宏基因组学样本通过NGS技术产生读长,并试图将这些读长与预计存在的一组生物的参考基因组进行比对。这就是之前讨论的序列比对(read-mapping)问题,但是宏基因组比对需要多个参考基因,这加剧了对计算的需求。另一种方法是在蛋白质序列库中进行同源搜索;精确或接近精确匹配暗示一种生物的存在,而更多远距离命中(distant hits)仍为功能发现提供线索。对于这一任务,BLASTX[2]常被用于将核苷酸序列翻译为可能的蛋白质序列,并在蛋白质数据库中搜索这些序列。问题的难点在于,需要的数据集,即“鸟枪法”测序宏基因组,比标准的基因组数据集更大更复杂。大量数据造成了在某些细菌、病毒、物种和类属识别上的巨大挑战[19]。
基于化学结构和功能,利用计算方法对药物和相应靶标进行研究被称为化学基因组学(chemogenomics)。在药物发现和药物重定位领域,预测具有生物活性的化合物是一项重要任务。计算高通量筛选可以从费力的湿实验(wet-lab)考虑中淘汰许多化合物,但是计算筛选本身也比较耗时。
化学基因组学主要依赖于通过化学结构图的比较,识别相似分子和结合位点。此外,比较化学结构图主要涉及到计算最大公共子图(Maximal Common Subgraph, MCS),这是一个NP难的问题。然而,这种待搜索的化合物的数量正在不断增长;美国国家生物技术信息中心(NCBI)的PubChem数据库中的化合物已经从2011年1月的3100万种增长到2015年7月的6800万种。
对这些不断增长的数据执行可持续的存储、搜索和分析的能力,依赖于那些能够利用数据的结构和数据中的冗余的聪明算法。的确,这些不断增长的数据库“对这些问题的可计算性造成威胁”[3]。
应对挑战:研究进展
基于参考序列的序列比对技术主要依赖于算法,如BWT通过可逆变化提供有效的字符串压缩,而FM-index是种基于BWT的压缩子串索引,能够在提供有效存储的同时支持快速搜索[3]。BWA(Burrows-Wheeler Aligner)使用BWT算法,而Bowtie[2]进一步依赖FM-index来实现对NGS读长进行有效比对[3]。GEM(The Genome Multitool)[24]为了缩小读长与参考序列比对时的搜索空间,在对参考基因组进行压缩表示的基础上,结合使用了FM-index和动态规划算法。Masai[33]与mrsFAST[15]使用“近似种子(approximate seed)”方法对可能比对的空间建立索引,也能缩小查找空间,然而其大部分运行时间都用于扩展阶段。目前最先进的比对软件mrsFAST-Ultra基于机器结构获得了更高的效率,而不是利用数据本身的冗余信息,并且获得近乎完美的灵敏度,但这只在无插入和删除错配时能够实现[16]。即便如此,序列比对仍然是基因组研究的重大瓶颈[3]。
序列压缩的必然性使研究人员希望在今后能应用更多的先进比对工具或者其他分析工具[4]。如前所述,NGS 读长包含一个序列串以及相应的质量分数,在压缩时,后者通常会占用更多存储空间。通过利用生物数据的结构,可以对部分NGS 读长进行更有效的压缩。不同于文献[4,26]采用的质量值压缩, Quartz[39]采用方法为:利用中型l-mers在大多数情况下能够在基因组中得到唯一定位这一特性,作为有信息量的质量值和无信息量的质量值划定阈值,以便允许对无信息量的质量值进行有损压缩。因Quartz有损压缩加入了来自目标基因的l-mers分布信息,它证明通过竞争方法不仅提高了压缩率,而且在一定程度上提高了后续变异检测的精度[39]。同样,对于读长的序列部分,Mince[27]利用读长冗余信息,将相似读长(至少有15bp长的公共子串)分到同一个桶(buckets),并允许将公共子串移除并作为桶的标识,因此每一个压缩的读长仅包含它与桶标识不同的部分。这种方法允许一个通用的压缩软件获得更高效的压缩。SCALCE[3]也依赖于这种“加速”模式,即通过对读长重排序,使得通用压缩软件能够获得更高效率。
最近宏基因组搜索工具的改进主要依赖于BLASTX的两点改进:索引(indexing)与字母表减重(alphabet reduction)。RapSearch2[40]依赖于字母表减重与一种无冲突哈希表。字母表减重因其可逆性,可以被认为是一种无损压缩;20个字母的氨基酸字母表可以映射为更小的字母表,借助存储的偏移量还原出全字母表下的原始序列。哈希表为搜索提供一种数据库的高效索引。DIANMOND[7]也依赖于字母表减重,但是使用“有形种子(shaped seeds)”而不是简单的使用k-mer来为数据库建立索引。所谓“有形种子”本质上就是在9~12个指定位置上带有通配符的长度为15~24的k-mer。DIANMOND的搜索速度比BLASTX高出3~4个数量级,但与搜索数据库的规模仍呈线性关系。
在基因表达的研究方面,最近探索出了开发数据高维结构的新方法。SPARCLE(SPArse ReCovery of Linear combinations of Expression)[28]将压缩感知[8]应用到基因表达分析中。最近另一个新颖的方法是利用基因表达空间的结构,即Parti(Pareto task inference) [17],它将一组数据用一个多面体描述,并且从富含特征的多面体顶点推断出特定任务标识。
使用最广泛的化学基因组搜索工具是SMSD(Small Molecule Sub-graph Detector)[29],基于问题中图的规模和复杂度应用几种MCS算法中的一种。值得注意的是,对于比较大的化合物数据库,如PubCHEM,已无法在笔记本上使用像SMSD这样的工具进行搜索。
生物数据的结构
幸运的是,生物学数据具有独特的结构,我们可以利用其优点进行搜索,使得搜索的规模相对数据库大小呈次线性增长[38]。最显而易见的是许多生物学数据是高度冗余的;如果已经在一个基因组上进行过计算,而研究人员希望能在其他人的基因组上进行同样的计算,则该工作中的大部分已经完成[22]。当处理冗余数据时,很容易想到的方法是聚类。而基于聚类的搜索已被充分研究,传统观点认为它提供了一个常数因子以加速穷举搜索。
除了冗余,大型生物数据集的另一个属性也很明显。生物序列存在的数量远远少于可以枚举的,但即便如此,那些存在的就往往是高度相似的。因为进化过程中只有那些表现出对生物有用的基因会保留下来,并且大多数随机氨基酸序列不被期望形成稳定的结构。两个人类基因组只存在0.1%的差异,所以1000个人的基因组的独特信息量少于单独一个基因组信息量的两倍[22],因此,生物数据不但表现出冗余,它还趋向于不占据整个可能空间的任何区域(图3)。这看起来就如自然法则,进化——将数据限制到一个特定的笛卡尔空间的子空间。
冗余性的一个重要方面是数据集显示出低的测量熵(metric entropy)[38]。给定一个聚类半径rc和一个数据集D,聚类的数量k由Nrc(D)约束,以保证所有的聚类要覆盖数据集D,而测量熵与数据集中数据数量|D|相比则较小(图3)。相比之下,如果笛卡尔空间内的点服从均匀分布,Nrc(D)将会更大。
第二个关键特点是生物数据集具有低分形维度[38]。也就是说,在数据集D上任意点,在半径r1与r2范围内,分形维数d = log(n2/n1)/log(r2/r1),其中n1与n2分别代表半径为r1与r2范围内点的数目。
基于聚类的搜索,比如“压缩组学(compressive omics)”,使用压缩来加速分析,能对一个半径为r的查询数据集q,在分形数为d,测量熵为k,尺度为rc的数据库D上进行近似搜索,搜索时间正比于
其中,BD(q, r)是数据集D上的点,即球心为q、半径为r的球面上的点。
鉴于此形式,相比于线性搜索,|D|/k 提供了关于粗搜索(coarse search)的加速因子的估计。细搜索(fine search)的时间复杂度关于分形维数d呈指数增长,这可以在一个数据集上通过对局部分形维数采样进行全局评估。。
生物数据集显现出冗余性,并且依据自然法则,受限于子空间;也就是说,绝大多数的可列举的序列和结构是不存在的,因为他们是无用的(至少在进化中没有被选择)。相对于数据集的大小,这种组合将会导致较低的分形维度和低熵度量,这表明“压缩组学”将具备处理大规模次线性增长的数据的能力。
压缩算法的时代
我们正在进入一个压缩算法时代,这些算法针对生物数据结构采用完全不同的范式。为了尝试利用基因组序列数据固有的冗余性,Loh等人[22]介绍了压缩基因组学(compressive genomics),该方法依赖于以某种方式压缩数据,要求在压缩表示时能够同时进行计算(比如BLAST搜索)。压缩基因组学是基于压缩加速这一概念,它依赖于两阶段搜索,称为粗搜索与细搜索。粗搜索只进行粗糙的,或者是典型的,具有独特数据的子序列。在查询阈值范围内的任意代表性序列能够代表所有与它相似的序列。细搜索是在原始数据库的这种子集上进行。相对于BLAST核苷酸[22]与BLAST蛋白质[12]搜索,该方法在运行时间上提高了几个数量级;随着数据库的增长,运行时间的改进也在增大。
序列比对软件CORA[37]对带有参考基因组索引压缩应用基于中等大小的l-mer的序列压缩方法。CORA,像calBLAST(压缩加速的BLAST)[22]和caBLASTP[12]一样,通过允许在压缩空间进行操作来加速现有的工具,并依赖于粗、细搜索两个阶段。相比之下,短种子聚类模式,如在Masai[33]与MrsFAST[3]中使用的,在概念上区别于CORA,该模式旨在加速锚定到参考基因组(seed-to-reference)的比对步骤。因此,后续还有种子拓展步骤,其实质上需要付出更高代价并且也需要对每个序列进行此步骤并且单独比对,即便种子已被聚类。通过基于l-mers的序列压缩模型,CORA能够在粗比对中,对种子比对(seed-mapping)和种子扩展(seed-extension)步骤加速并实现接近线性缩放,这涵盖了大部分的序列比对计算。传统上,k-mers指固定长度(经常,但不必要,是2的指数)的短子字符串,被用于更长序列比对的“种子”。CORA使用长得多的k-mers(例如33~64个核苷酸长),并且使用小的海明或者编辑距离来连接与自己相邻的核苷酸。术语l-mers将这些子串区别于典型的k-mers。
在宏基因组搜索中,最近发布的MICA[38]证明caBLAST[22]与caBLASTP[12]的加速压缩方法,与字母减重与索引方法是正交的。MICA将最新的压缩加速框架应用于DIAMOND[7],使用了其自身的粗搜索阶段,以及用户可选择的DIAMOND或BLASTX之一用于细搜索阶段。MICA相比于高度优化的DIAMOND在速度上展现出几个数量级的优势,堪比caBLASTP超过BLASTP。
压缩基因组学[22]已经泛化并推广到非序列空间,创造了“压缩组学”。化学基因组学就是一个例子。利用压缩加速方法,Ammolite[38]在PubChen数据库上对SMSD搜索平均加速150倍。另一个例子是esFragBag[38],其基于字符包(bag-of-words)向量的余弦距离或者欧氏距离对蛋白质进行聚类,并获得平均10倍加速。
压缩组学在某些情况下面临准确性开销。然而,这些情况已被很好地设定。压缩组学不会出现假阳性,因为细搜索阶段对所有候选匹配使用相同的比较方法。此外,当用于比对的距离函数是一个标准度量,特别是当它服从三角不等式时,将不会发生假阴性。然而,实践中使用的是非标准度量距离函数,如在BLAST中的E值或者是在esFragBag中的余弦距离,将极有可能出现假阴性。幸运的是,这些错误率极低,不到10%[12, 22, 38]。
结论
生物数据的爆炸式增长,很大程度上归功于技术的进步,比如NGS技术,告诉我们挑战与机遇并存。探索并解码疾病的秘密,如癌症、肥胖、阿尔茨海默氏症、自闭症谱系障碍等,同时更好地理解生物学这一基础学科,取决于研究者分析迅猛增长的基因组、宏基因组、结构与相互作用组(interactome)数据的能力。
压缩加速方法[22],以及它展示出的随着数据的测量熵缩放的能力[38],同时提供了很多其他有用的索引技术,它是一个应对海量数据的重要工具。将压缩加速方法扩展到宏基因组学,NGS 读长比对[37],与化学基因组学,展示出了它的灵活性。同样的,这些应用中的压缩存储随数据集存在信息熵缩放[38]。
计算生物学领域必须继续创新,并且需要从其他计算科学领域获取更好的想法。例如,压缩加速算法支撑类似一个度量球树,是在20年前数据库会议上被首次提出的[35]。然而,后者不允许在度量熵与分形维数上进行性能分析。还需要借鉴来自其他领域,如图像处理、计算几何[18]、次线性算法[30]将可能在生物学领域取得成果。在计算生物学上的算法思想也有可能会应用在其他海量数据领域,如天文学或者社交网络[34]。
生物数据科学的独特主要源自两个原因:生物学本身,甚至分子生物学的起源是早于信息时代的,在生物学上进化是最有意义的研究方向[13]。生物学家不但开发了多种多样新的实验技术,而且通过复杂过程中产生的惊人的数据推进进化的研究。通过揭示生物数据结构特点算法的不断发展和进步,我们希望能够更好地研究和理解生物学中的进化。
致谢:
该项工作得到美国国家卫生研究所(National Institutes of Health, NIH)支持,基金号为GM108348。Y.W.Y也得到了赫兹奖学金(Hertz Fellowship) 的支持。
所有评论仅代表网友意见